package com.px.plan.service;

import com.px.plan.domain.PlanActionRecord;

import java.util.List;

/**
 * 飞行行动记录Service接口
 * 
 * @author WRJ
 * @date 2024-08
 */
public interface IPlanActionRecordService 
{
    /**
     * 查询飞行行动记录
     * 
     * @param id 飞行行动记录主键
     * @return 飞行行动记录
     */
    public PlanActionRecord selectPlanActionRecordById(Long id);

    /**
     * 查询飞行行动记录列表
     * 
     * @param planActionRecord 飞行行动记录
     * @return 飞行行动记录集合
     */
    public List<PlanActionRecord> selectPlanActionRecordList(PlanActionRecord planActionRecord);

    /**
     * 新增飞行行动记录
     * 
     * @param planActionRecord 飞行行动记录
     * @return 结果
     */
    public int insertPlanActionRecord(PlanActionRecord planActionRecord);

    /**
     * 修改飞行行动记录
     * 
     * @param planActionRecord 飞行行动记录
     * @return 结果
     */
    public int updatePlanActionRecord(PlanActionRecord planActionRecord);

    /**
     * 批量删除飞行行动记录
     * 
     * @param ids 需要删除的飞行行动记录主键集合
     * @return 结果
     */
    public int deletePlanActionRecordByIds(Long[] ids) throws Exception;

    /**
     * 删除飞行行动记录信息
     * 
     * @param id 飞行行动记录主键
     * @return 结果
     */
    public int deletePlanActionRecordById(Long id);

    /**
     * 新增飞行记录并返回记录ID
     *
     * @param actionId 行动ID
     * @param sn       飞机SN
     * @return 记录ID
     */
    Long insertPlanActionRecord(Long actionId, String sn);

    /**
     * 根据行动ID和无人机SN创建行动记录,如果存在历史记录则返回历史ID,否则创建新记录
     *
     * @param actionId 行动ID
     * @param droneSn  无人机SN
     * @return
     */
    Long getRecordId(Long actionId, String droneSn);

    Long getRecordIdByActionAndSn(Long actionId, String droneSn);
}
